[Back]

MacOS X Developer Preview Release Notes Copyright © 2000 by Apple Computer, Inc. All Rights Reserved.

MacOS X Developer Preview 4 Release Notes:
The New Project Builder

 

Welcome to the New Project Builder!

This completely new version of our integrated development environment is shipping for the first time in DP4. We have started to use this extensively throughout Apple for the development of various aspects of Mac OS X. Although there are numerous features we still need to add, we find the current system to be quite stable and usable as a production development environment.

For all Mac OS X MachO development other than for WebObjects, we strongly encourage you to use this new Project Builder.

 

Where's the Original Project Builder?

The original Project Builder application has been renamed to ProjectBuilderWO ("Project Builder for WebObjects"). We will be working with the WebObjects team to design good integration between WebObjects Builder and the new Project Builder. For some period of time, though, ProjectBuilderWO will continue to be the primary IDE for use when developing WebObjects applications, so we will continue to ship ProjectBuilderWO with the WebObjects SDK until we have fully integrated WebObjects with the new Project Builder.

IMPORTANT NOTE: We do NOT plan to ship ProjectBuilderWO with the GM release of the Mac OS X SDK! If you feel that you have a compelling reason why we must continue to ship ProjectBuilderWO with the GM release of the Mac OS X SDK, please write to <macosx-tools-feedback@group.apple.com>. Otherwise, we plan to focus our efforts on improving the new Project Builder as rapidly as possible.

For all purposes other than WebObjects development, we strongly encourage you to migrate your projects to the new Project Builder. If you are creating new projects, start with the new Project Builder from the beginning. To import a ProjectBuilderWO project into the new Project Builder, launch Project Builder, choose the New Project menu item from the File menu, and select Imported PB.project. This should import your project files and most of the relevant build settings. Note that it does create Project Builder "groups" reflecting the old ProjectBuilderWO "buckets" (e.g., Classes, Headers, Interfaces, etc), but you can now move files in and out of those groups, ungroup things, combine groups, etc. Now you can think about how your project should logically be laid out, with no direct forced relationship to the layout on disk.

 

Goals of the New Project Builder

In designing the new Project Builder, we have strived to meet the following goals:

While we have not yet met all of the above goals, we believe that we are well on the way to doing so. In some cases, such as with settings for build tools options, we have provided "expert mode" user interfaces (such as key-value tables) to provide a way of doing everything so that we could enable people to get their work done. Now we will be working to enhance the user experience further.

 

What's Yet To Come

There are many additional features that we are actively working on, including:

We are also working with the compiler team for:

Longer term, we plan to provide mechanisms and APIs to allow third parties to extend a variety of aspects of the Project Builder environment more easily.

 

Sample Projects which Use Project Builder

Most of the example projects in Mac OS X have been converted to use the new Project Builder. These include:

These examples all currently ship with an older suffix for our project directory, ".pbxproj". The primary suffix is now ".pbproj", but .pbxproj is supported for backward compatibility.

 

Further Documentation of Project Builder

A set of Project Builder tutorials can be found in /System/Documentation/Developer/DeveloperTools/ProjectBuilder.

 

Building from the Command Line

If you would like to build a Project Builder-based project from the command line, you can use the "pbxbuild" command. By default with no arguments, it does a build of the top target listed in your project. If that target has dependencies on other targets, it will build those as well.

pbxbuild [-activetarget | -alltargets | -target <targetname> ] [ clean | install ] [ <variable>=<value> ]

Examples:

pbxbuild
Builds the first target listed in the project.

pbxbuild clean

Does a clean of the entire project. (We are thinking about per-target cleans.)

pbxbuild -activetarget install DSTROOT=/tmp

Does a build and install of the active target into /tmp.

 

Known Issues and Limitations

Due to issues in the Finder, Project Builder document wrapper folders are not presented as single files, and thus are not double-clickable. To open a Project Builder document in the Finder, open the associated .pbproj folder and double-click the project.pbxproj file within it.

In certain circumstances, projects which use absolute paths to reference files may fail to build. To fix that problem, select the file and choose the Show Inspector menu item from the Project menu. Then, change the Reference Style as appropriate.

When you try to build a project when you are currently debugging one of its build outputs, the build may fail. Quit the target application and stop the debugger, then restart the build.

Support for shell script build phases is fairly recent. There may be some issues, such as potentially not stopping a build appropriately if a shell script build phase returns an error.

 

Enjoy!

We hope you like working with the new Project Builder, and we look forward to your feedback!

Thanks!

The Project Builder Team